﻿using System;
using System.IO;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Collections;
using System.Data;
using System.Drawing.Imaging;
using iTextSharp.text;
using iTextSharp.text.pdf;

public partial class KoopWizard : System.Web.UI.Page
{
    private int m_GetCurrentPageNumber = 0;
    DB db = new DB();
    DataTable Films, Tijden, Skaartjes, PlatteGrond, Stoelen;
    Film gekozenFilm;
    SoortKaarten gekozenSoorten;
    TijdFilm tijdFilm;
    ArrayList plaatsen;
    String betaalkeuze;
    protected void Page_Load(object sender, EventArgs e)
    {
        if (Session["Username"] == null)
        {
            Response.Redirect("Default.aspx");
        }

        Films = db.getFilms();
        if (!IsPostBack)
        {

            BindDataToRepeter();
            Session["gekozenPlaatsen"] = null;
        }
        else
        {

            Skaartjes = (DataTable)Session["Skaartjes"];
            Tijden = (DataTable)Session["Tijden"];
            Stoelen = (DataTable)Session["Stoelen"];
            gekozenFilm = (Film)Session["gekozenFilm"];
            gekozenSoorten = (SoortKaarten)Session["gekozenSoorten"];
            tijdFilm = (TijdFilm)Session["tijdFilm"];
            plaatsen = (ArrayList)Session["gekozenPlaatsen"];
            betaalkeuze = (String)Session["betaalKeuze"];
            BindDataToRepeter();
            if (gekozenFilm != null && tijdFilm != null && gekozenSoorten != null)
            {
                MaakZaal();
            }
        }

    }



    /* hide volgende buttons op bepaalde pagina's*/
    protected void Wizard1_ActiveStepChanged(object sender, EventArgs e)
    {
        if (Wizard1.ActiveStepIndex == 0)
        {
            zetStoelenTerug();
            Wizard1.StepNextButtonStyle.CssClass = "buttonHidden";
            Wizard1.StepPreviousButtonStyle.CssClass = "buttonHidden";
            Wizard1.StartNextButtonStyle.CssClass = "buttonHidden";
        }
        else if (Wizard1.ActiveStepIndex == 1)
        {
            zetStoelenTerug();
            Wizard1.StepNextButtonStyle.CssClass = "buttonHidden";
            Wizard1.StepPreviousButtonStyle.CssClass = "buttonVisible";
            Wizard1.StartNextButtonStyle.CssClass = "buttonHidden";
        }
        else if (Wizard1.ActiveStepIndex == 2)
        {
            zetStoelenTerug();

            Wizard1.StepPreviousButtonStyle.CssClass = "buttonVisible";
            if (gekozenSoorten != null)
            {

                if (gekozenSoorten.totaalAantalPlaatsen() > 0)
                {
                    Wizard1.StepNextButtonStyle.CssClass = "buttonVisible";
                }
            }
            else
            {
                Wizard1.StepNextButtonStyle.CssClass = "buttonHidden";
            }
        }
        else if (Wizard1.ActiveStepIndex == 3)
        {
            Wizard1.StepPreviousButtonStyle.CssClass = "buttonVisible";
            Wizard1.StepNextButtonStyle.CssClass = "buttonHidden";
            Wizard1.StartNextButtonStyle.CssClass = "buttonVisible";
        }
        else
        {
            Wizard1.FinishCompleteButtonStyle.CssClass = "buttonHidden";
        }
    }


    /// Stap1 
    private void BindDataToRepeter()
    {


        //Create an object of PagedDataSource Object
        PagedDataSource objPagedDataSource = new PagedDataSource();
        //Get the Data Source and assign to Data View
        DataView objDataView = new DataView(Films);
        objPagedDataSource.DataSource = objDataView;
        objPagedDataSource.AllowPaging = true;
        objPagedDataSource.PageSize = 12; //Set the Page Size, Means the number os records you want to dispay in a page
        objPagedDataSource.CurrentPageIndex = GetCurrentPageNumber;

        if (objPagedDataSource.PageCount > 0)
        {
            filmaanbod.Visible = true;
            filmaanbod.DataSource = objPagedDataSource;
            filmaanbod.DataBind();

        }
        //Enable/Disable Previous Link Button
        if (GetCurrentPageNumber == 0)
        {
            lnkPrevious.Visible = false;
        }
        else
        {
            lnkPrevious.Visible = true;
        }
        //Enable/Disable Next link Button
        if (objPagedDataSource.PageCount == GetCurrentPageNumber + 1)
        {
            lnkNext.Visible = false;
        }
        else
        {
            lnkNext.Visible = true;
        }

    }
    protected void lnkPrevious_Click(object sender, EventArgs e)
    {
        GetCurrentPageNumber -= 1;
        BindDataToRepeter();
    }
    protected void lnkNext_Click(object sender, EventArgs e)
    {
        GetCurrentPageNumber += 1;
        BindDataToRepeter();
    }

    private int GetCurrentPageNumber
    {
        get
        {
            if (ViewState["CurrentPage"] != null)
            {
                return Convert.ToInt32(ViewState["CurrentPage"]);
            }
            else
            {
                return m_GetCurrentPageNumber;
            }
        }
        set
        {
            ViewState["CurrentPage"] = value;
        }
    }
    protected void FilmAanbod_ItemCommand(object source, RepeaterCommandEventArgs e)
    {
        int pagina = GetCurrentPageNumber;
        int rij;
        if (pagina > 0)
        {
            string FilmId = ((LinkButton)e.CommandSource).ClientID;
            rij = Convert.ToInt32(FilmId.Substring(FilmId.Length - 1));
            for (int i = 0; i < pagina; i++)
            {
                rij += 9;
            }
        }
        else
        {
            string FilmId = ((LinkButton)e.CommandSource).ClientID;
            rij = Convert.ToInt32(FilmId.Substring(FilmId.Length - 1));
        }

        DataRow dr = Films.Rows[rij];
        string omzet = (string)dr[2];
        gekozenFilm = new Film((string)dr[0], (string)dr[2], (string)dr[3]);

        //gekFilm.Text = "U heeft de volgende film gekozen:" + "  " + gekozenFilm.Filmnaam;

        BindToTijden(gekozenFilm.Filmnaam);
        TijdCheck.Visible = false;
        TijdenRepeater.Visible = true;
        Label FilmTijden = (Label)TijdenRepeater.Controls[0].Controls[0].FindControl("FilmTijden");
        FilmTijden.Text = gekozenFilm.Filmnaam + "  - Kijkwijzer: ";

        System.Web.UI.WebControls.Image kijkwijzerIMG = (System.Web.UI.WebControls.Image)TijdenRepeater.Controls[0].Controls[0].FindControl("kijkwijzerIMG");
        kijkwijzerIMG.ImageUrl = gekozenFilm.KijkWijzer;
        RangButtonList.Visible = true;
        RangButtonList.SelectedIndex = 0;
        BindToKaartje("Rang 1");
        KaartjeCheck.Visible = false;
        Session["gekozenFilm"] = gekozenFilm;
        Label GekozenFilm = (Label)GekozenFilmLabel;
        GekozenFilm.Text = gekozenFilm.Filmnaam;
        if (gekozenSoorten != null)
        {
            gekozenSoorten = null;
            Session["gekozenSoorten"] = gekozenSoorten;
        }
        Wizard1.ActiveStepIndex = 1;
    }
    // Stap3

    private void BindToKaartje(string rang)
    {
        Skaartjes = db.getKaartjes(rang);
        if (gekozenFilm.Dried.Equals("ja"))
        {
            DataRow row = Skaartjes.NewRow();
            row["Soort"] = "3D Bril";
            if (rang.Equals("Rang 1"))
            {
                row["Rang1"] = "1,00";
            }
            else if (rang.Equals("Rang 2"))
            {
                row["Rang2"] = "1,00";
            }
            else
            {
                row["Rang3"] = "1,00";
            }
            Skaartjes.Rows.Add(row);

        }
        Kaarten.DataSource = Skaartjes;
        Kaarten.DataBind();
        Session["Skaartjes"] = Skaartjes;
    }

    private void BindToTijden(String FilmNaam)
    {
        Tijden = db.getTijden(FilmNaam);
        TijdenRepeater.DataSource = Tijden;
        TijdenRepeater.DataBind();
        Session["Tijden"] = Tijden;
    }

    protected void Kaarten_ItemCommand(Object source, RepeaterCommandEventArgs e)
    {
        if (gekozenSoorten == null)
        {
            int aantals = Kaarten.Items.Count;
            string[] soort = new string[aantals];
            int[] aantal = new int[aantals];
            Decimal[] prijs = new Decimal[aantals];
            Decimal[] totalen = new Decimal[aantals];
            Decimal totaal = 0;
            int totaalAantal = 0;
            string rang = RangButtonList.SelectedItem.Text;
            gekozenSoorten = new SoortKaarten(soort, aantal, prijs, totalen, totaal, rang, totaalAantal);
        }

        Label BrilSoort = (Label)Kaarten.Controls[Kaarten.Controls.Count - 2].Controls[0].FindControl("Soort");
        Label BrilAantal = (Label)Kaarten.Controls[Kaarten.Controls.Count - 2].Controls[0].FindControl("Aantal");
        Label BrilPrijs = (Label)Kaarten.Controls[Kaarten.Controls.Count - 2].Controls[0].FindControl("Prijs");
        Label BrilTotaal = (Label)Kaarten.Controls[Kaarten.Controls.Count - 2].Controls[0].FindControl("Totaal");

        int aantalItems = Kaarten.Items.Count;
        string knopClientID = ((Button)e.CommandSource).ClientID;
        string rij = knopClientID.Substring(knopClientID.Length - 1);

        if (e.CommandName.Equals("Meer"))
        {

            foreach (RepeaterItem rptItem in Kaarten.Items)
            {
                Label Aantal = (Label)rptItem.FindControl("Aantal");
                Label Prijs = (Label)rptItem.FindControl("Prijs");
                Label Totaal = (Label)rptItem.FindControl("Totaal");
                Label Soort = (Label)rptItem.FindControl("Soort");

                string clientid = Aantal.ClientID;
                string Lrij = clientid.Substring(clientid.Length - 1);

                if (Lrij.Equals(rij))
                {
                    int hwaarde = Convert.ToInt32(Aantal.Text);
                    hwaarde++;
                    Aantal.Text = Convert.ToString(hwaarde);
                    Totaal.Text = Convert.ToString(hwaarde * Decimal.Parse(Prijs.Text));
                    if (gekozenFilm.Dried.Equals("ja"))
                    {
                        if (aantalItems - 1 != Convert.ToInt32(Lrij))
                        {
                            int hwaardeb = Convert.ToInt32(BrilAantal.Text);
                            hwaardeb++;
                            BrilAantal.Text = Convert.ToString(hwaardeb);
                            BrilTotaal.Text = Convert.ToString(hwaardeb * Decimal.Parse(BrilPrijs.Text));

                            string[] hbsoorten = gekozenSoorten.Soort;
                            hbsoorten[Convert.ToInt32(aantalItems - 1)] = BrilSoort.Text;
                            gekozenSoorten.Soort = hbsoorten;

                            int[] hbaantal = gekozenSoorten.Aantal;
                            hbaantal[Convert.ToInt32(aantalItems - 1)] = Convert.ToInt32(BrilAantal.Text);
                            gekozenSoorten.Aantal = hbaantal;


                            Decimal[] hbtotalen = gekozenSoorten.Totalen;
                            hbtotalen[Convert.ToInt32(aantalItems - 1)] = Convert.ToDecimal(BrilTotaal.Text);
                            gekozenSoorten.Totalen = hbtotalen;

                        }
                    }
                    string[] hsoorten = gekozenSoorten.Soort;
                    int[] haantal = gekozenSoorten.Aantal;
                    Decimal[] hprijzen = gekozenSoorten.Prijs;
                    Decimal[] htotalen = gekozenSoorten.Totalen;

                    hsoorten[Convert.ToInt32(Lrij)] = Soort.Text;
                    gekozenSoorten.Soort = hsoorten;

                    haantal[Convert.ToInt32(Lrij)] = Convert.ToInt32(Aantal.Text);
                    gekozenSoorten.Aantal = haantal;

                    hprijzen[Convert.ToInt32(Lrij)] = Convert.ToDecimal(Prijs.Text);
                    gekozenSoorten.Prijs = hprijzen;

                    htotalen[Convert.ToInt32(Lrij)] = Convert.ToDecimal(Totaal.Text);
                    gekozenSoorten.Totalen = htotalen;

                    gekozenSoorten.Rang = RangButtonList.SelectedItem.Text;

                    UpdateLabels();
                    break;
                }
            }

        }
        if (e.CommandName.Equals("Minder"))
        {
            Session["gekozenPlaatsen"] = null;
            foreach (RepeaterItem rptItem in Kaarten.Items)
            {
                Label Aantal = (Label)rptItem.FindControl("Aantal");
                Label Prijs = (Label)rptItem.FindControl("Prijs");
                Label Totaal = (Label)rptItem.FindControl("Totaal");

                string clientid = Aantal.ClientID;
                string Lrij = clientid.Substring(clientid.Length - 1);
                if (Lrij.Equals(rij))
                {
                    int hwaarde = Convert.ToInt32(Aantal.Text);
                    if (hwaarde >= 1)
                    {
                        if (gekozenFilm.Dried.Equals("ja"))
                        {
                            if (aantalItems - 1 != Convert.ToInt32(Lrij) && Convert.ToInt32(BrilAantal.Text) > 0)
                            {
                                int hwaardeb = Convert.ToInt32(BrilAantal.Text);

                                hwaardeb--;
                                BrilAantal.Text = Convert.ToString(hwaardeb);
                                BrilTotaal.Text = Convert.ToString(hwaardeb * Decimal.Parse(BrilPrijs.Text));

                                string[] hbsoorten = gekozenSoorten.Soort;
                                hbsoorten[Convert.ToInt32(aantalItems - 1)] = BrilSoort.Text;
                                gekozenSoorten.Soort = hbsoorten;

                                int[] hbaantal = gekozenSoorten.Aantal;
                                hbaantal[Convert.ToInt32(aantalItems - 1)] = Convert.ToInt32(BrilAantal.Text);
                                gekozenSoorten.Aantal = hbaantal;

                                Decimal[] hbtotalen = gekozenSoorten.Totalen;
                                hbtotalen[Convert.ToInt32(aantalItems - 1)] = Convert.ToDecimal(BrilTotaal.Text);
                                gekozenSoorten.Totalen = hbtotalen;


                            }
                        }


                        hwaarde--;
                        Aantal.Text = Convert.ToString(hwaarde);
                        Aantal.Text = Convert.ToString(hwaarde);
                        Totaal.Text = Convert.ToString(hwaarde * Decimal.Parse(Prijs.Text));


                        int[] haantal = gekozenSoorten.Aantal;
                        Decimal[] htotalen = gekozenSoorten.Totalen;

                        haantal[Convert.ToInt32(Lrij)] = Convert.ToInt32(Aantal.Text);
                        gekozenSoorten.Aantal = haantal;

                        htotalen[Convert.ToInt32(Lrij)] = Convert.ToDecimal(Totaal.Text);
                        gekozenSoorten.Totalen = htotalen;

                        gekozenSoorten.Rang = RangButtonList.SelectedItem.Text;

                        UpdateLabels();
                    }
                    break;
                }
            }

        }


        Decimal totaalalles = 0;
        Label TotaalAll = (Label)Kaarten.Controls[Kaarten.Controls.Count - 1].Controls[0].FindControl("TotaalAll");

        foreach (RepeaterItem rptItem in Kaarten.Items)
        {
            Label Totaal = (Label)rptItem.FindControl("Totaal");
            totaalalles = totaalalles + Decimal.Parse(Totaal.Text);
        }
        TotaalAll.Text = Convert.ToString(totaalalles);
        gekozenSoorten.Totaal = Convert.ToDecimal(TotaalAll.Text);
        Session["gekozenSoorten"] = gekozenSoorten;

        Plaasten.Visible = true;
        int test = gekozenSoorten.totaalAantalPlaatsen();
        //    Zaal = db.getZaal();

        AantalP.Text = "Aantal: " + Convert.ToString(gekozenSoorten.totaalAantalPlaatsen());
        Rang.Text = "" + gekozenSoorten.Rang;


        if (gekozenSoorten.totaalAantalPlaatsen() > 0)
        {
            Wizard1.StepNextButtonStyle.CssClass = "buttonVisible";

        }
        else
        {
            Wizard1.StepNextButtonStyle.CssClass = "buttonHidden";
        }


    }

    protected void RangButtonList_SelectedIndexChanged(object sender, EventArgs e)
    {
        gekozenSoorten = null;
        Session["gekozenSoorten"] = gekozenSoorten;
        BindToKaartje(RangButtonList.SelectedItem.Text);
        Kaarten.Visible = true;
    }

    protected void GekozenTijd_ItemCommand(Object source, RepeaterCommandEventArgs e)
    {
        string knopClientID = ((LinkButton)e.CommandSource).ClientID;
        string rij = knopClientID.Substring(knopClientID.Length - 1);
        //Label FilmInfo = (Label)TijdenRepeater.Controls[0].Controls[0].FindControl("FilmTijden");
        //FilmInfo.Text = gekozenFilm.Filmnaam + "  - Kijkwijzer: " + gekozenFilm.KijkWijzer;

        foreach (RepeaterItem rptItem in TijdenRepeater.Items)
        {
            Label Tijd = (Label)rptItem.FindControl("Tijd");
            Label ZaalID = (Label)rptItem.FindControl("ZaalID");

            string clientid = Tijd.ClientID;
            string Lrij = clientid.Substring(clientid.Length - 1);

            if (Lrij.Equals(rij))
            {
                DataRow tijdrijd = Tijden.Rows[Convert.ToInt32(Lrij)];
                tijdFilm = new TijdFilm(Convert.ToInt32(tijdrijd[3]), Tijd.Text, Convert.ToInt32(ZaalID.Text));
                Session["tijdFilm"] = tijdFilm;


                break;
            }


        }
        FilmInfo.Text = gekozenFilm.Filmnaam + " - Om: " + tijdFilm.Tijd;
        Stoelen = db.getPlaatsen(tijdFilm.ID);
        Session["Stoelen"] = Stoelen;
        DataRow stoelen = Stoelen.Rows[1];
        string test = (string)stoelen[1];
        Wizard1.ActiveStepIndex = 2;
    }


    private void MaakZaal()
    {
        PlatteGrond = db.getPlattengrond(tijdFilm.Zaal);
        Stoelen = db.getPlaatsen(tijdFilm.ID);
        Session["Stoelen"] = Stoelen;
        Zaal.Controls.Clear();
        int Aantalstoelen = 0;
        int Aantalleeg = 0;
        int beginrij, eindrij;
        bool rangCheck = false;
        Literal tableStart = new Literal();
        // tableStart.SkinID = "literal";
        tableStart.Text = "<table >";
        Zaal.Controls.Add(tableStart);
        DataRow eersterij = PlatteGrond.Rows[0];
        string formaat = (string)eersterij[0];
        if (formaat.Equals("Groot"))
        {
            opvul.Visible = false;
            int aantalrijPerRang = 6;
            string rang = gekozenSoorten.Rang;
            string output = rang.Substring(rang.Length - 1, 1);
            int Nrang = Convert.ToInt32(output);
            beginrij = 0 + ((Nrang - 1) * aantalrijPerRang);
            eindrij = beginrij + aantalrijPerRang;
            if (Nrang == 1)
            {
                beginrij = beginrij + aantalrijPerRang;
                eindrij = eindrij + aantalrijPerRang;
            }
            if (Nrang == 2)
            {
                beginrij = beginrij - aantalrijPerRang;
                eindrij = eindrij - aantalrijPerRang;
            }

        }
        else
        {
            int aantalrijPerRang = 4;
            string rang = gekozenSoorten.Rang;
            string output = rang.Substring(rang.Length - 1, 1);
            int Nrang = Convert.ToInt32(output);
            beginrij = 0 + ((Nrang - 1) * aantalrijPerRang);
            eindrij = beginrij + aantalrijPerRang;
            if (Nrang == 1)
            {
                beginrij = beginrij + aantalrijPerRang;
                eindrij = eindrij + aantalrijPerRang;
            }
            if (Nrang == 2)
            {
                beginrij = beginrij - aantalrijPerRang;
                eindrij = eindrij - aantalrijPerRang;
            }
        }

        for (int i = 0; i < PlatteGrond.Rows.Count; i++)
        {
            DataRow rij = PlatteGrond.Rows[i];
            MaakTr("open");
            char[] plattenGrond = Convert.ToString(rij[2]).ToCharArray();
            if (i >= beginrij && i < eindrij)
            {
                rangCheck = true;
            }
            else
            {
                rangCheck = false;
            }
            for (int x = 0; x < plattenGrond.Length; x++)
            {
                if (Convert.ToString(plattenGrond[x]).Equals("1"))
                {

                    DataRow DBStoel = Stoelen.Rows[Aantalstoelen];
                    Aantalstoelen++;
                    if (Aantalstoelen == 113)
                    {
                        string test = "lalsl";
                    }

                    if (plaatsen != null)
                    {
                        if (plaatsen.Count > 0)
                        {
                            bool check = false;
                            foreach (int plaats in plaatsen)
                            {
                                if (plaats == Aantalstoelen)
                                {
                                    check = true;
                                    break;
                                }
                                else
                                {
                                    check = false;
                                }

                            }
                            if (check == true)
                            {

                                MaakTd(Convert.ToString(plattenGrond[x]), Aantalstoelen, "tijdelijk", "Bezet", rangCheck);


                            }
                            else
                            {
                                MaakTd(Convert.ToString(plattenGrond[x]), Aantalstoelen, "vast", Convert.ToString(DBStoel[1]), rangCheck);
                            }
                        }
                        else
                        {
                            MaakTd(Convert.ToString(plattenGrond[x]), Aantalstoelen, "vast", Convert.ToString(DBStoel[1]), rangCheck);
                        }

                    }
                    else
                    {
                        MaakTd(Convert.ToString(plattenGrond[x]), Aantalstoelen, "vast", Convert.ToString(DBStoel[1]), rangCheck);
                    }
                }


                if (Convert.ToString(plattenGrond[x]).Equals("0"))
                {
                    Aantalleeg++;
                    MaakTd(Convert.ToString(plattenGrond[x]), Aantalleeg, "vast", "geen", rangCheck);
                }

            }

            MaakTr("sluit");
        }

        Literal tableEnd = new Literal();
        tableEnd.Text = "</table>";
        Zaal.Controls.Add(tableEnd);


    }

    private void MaakTr(string waarde)
    {
        if (waarde.Equals("open"))
        {
            Literal rowStart = new Literal();
            rowStart.Text = "<tr>";
            Zaal.Controls.Add(rowStart);
        }
        else if (waarde.Equals("sluit"))
        {
            Literal rowEnd = new Literal();
            rowEnd.Text = "</tr>";
            Zaal.Controls.Add(rowEnd);
        }
    }

    private void MaakTd(string waarde, int stoel, string tijd, string soort, bool rangCheck)
    {
        if (rangCheck == true)
        {
            if (Convert.ToInt32(waarde) == 1)
            {
                Literal tdStart = new Literal();
                tdStart.Text = "<td>";
                Zaal.Controls.Add(tdStart);



                if (soort.Equals("Vrij"))
                {
                    LinkButton Lstoel = new LinkButton();
                    Lstoel.ID = "LStoel" + stoel + "";
                    Lstoel.CommandArgument = "" + stoel;
                    Lstoel.Command += new CommandEventHandler(StoelKlik);
                    Zaal.Controls.Add(Lstoel);

                    System.Web.UI.WebControls.Image Stoel = new System.Web.UI.WebControls.Image();
                    Stoel.ID = "Stoel" + stoel + "";
                    Stoel.ImageUrl = "IMG/vrij2.png";
                    Stoel.ToolTip = Convert.ToString(stoel);
                    Lstoel.Controls.Add(Stoel);
                }
                else if (soort.Equals("Bezet") || soort.Equals("Tijdelijkbezet"))
                {
                    if (soort.Equals("Tijdelijkbezet") && stoel == 113)
                    {
                        string test = "lalsl";
                    }
                    LinkButton Lstoel = new LinkButton();
                    Lstoel.ID = "LStoel" + stoel + "";
                    Lstoel.CommandArgument = "" + stoel;
                    Lstoel.Command += new CommandEventHandler(StoelKlik);


                    System.Web.UI.WebControls.Image Stoel = new System.Web.UI.WebControls.Image();
                    Stoel.ID = "Stoel" + stoel + "";
                    Stoel.ToolTip = Convert.ToString(stoel);
                    if (tijd.Equals("tijdelijk"))
                    {
                        Stoel.ImageUrl = "IMG/Tbezet2.png";
                    }

                    else
                    {
                        Stoel.ImageUrl = "IMG/bezet2.png";
                    }
                    if (tijd.Equals("tijdelijk"))
                    {
                        Lstoel.Controls.Add(Stoel);
                        Zaal.Controls.Add(Lstoel);
                    }
                    else
                    {
                        Zaal.Controls.Add(Stoel);
                    }
                }
                Literal tdEind = new Literal();
                tdEind.Text = "</td>";
                Zaal.Controls.Add(tdEind);

            }
            else
            {
                Literal tdStart = new Literal();
                tdStart.Text = "<td>";
                Zaal.Controls.Add(tdStart);

                System.Web.UI.WebControls.Image leeg = new System.Web.UI.WebControls.Image();
                leeg.ID = "opvulling" + stoel + "";
                leeg.ImageUrl = "IMG/opvul.png";
                Zaal.Controls.Add(leeg);

                Literal tdEind = new Literal();
                tdEind.Text = "</td>";
                Zaal.Controls.Add(tdEind);
            }
        }
        else
        {
            if (Convert.ToInt32(waarde) == 1)
            {
                Literal tdStart = new Literal();
                tdStart.Text = "<td>";
                Zaal.Controls.Add(tdStart);


                System.Web.UI.WebControls.Image Stoel = new System.Web.UI.WebControls.Image();
                Stoel.ID = "Stoel" + stoel + "";
                Stoel.ImageUrl = "IMG/nietBeschikbaar.png";
                Stoel.ToolTip = Convert.ToString(stoel);
                Zaal.Controls.Add(Stoel);

                Literal tdEind = new Literal();
                tdEind.Text = "</td>";
                Zaal.Controls.Add(tdEind);

            }
            else
            {
                Literal tdStart = new Literal();
                tdStart.Text = "<td>";
                Zaal.Controls.Add(tdStart);

                System.Web.UI.WebControls.Image leeg = new System.Web.UI.WebControls.Image();
                leeg.ID = "opvulling" + stoel + "";
                leeg.ImageUrl = "IMG/opvul.png";
                Zaal.Controls.Add(leeg);

                Literal tdEind = new Literal();
                tdEind.Text = "</td>";
                Zaal.Controls.Add(tdEind);
            }

        }

    }
    public void OnCancelButtonClick(object sender, EventArgs e)
    {
        zetStoelenTerug();
        Response.Redirect("~/Default.aspx");
    }

    public void zetStoelenTerug()
    {
        if (plaatsen != null)
        {

            foreach (int i in plaatsen)
            {
                db.tijdelijkeUpdateStoel("ondaan", i, tijdFilm.Zaal, tijdFilm.ID);
                plaatsen = new ArrayList();
                Session["gekozenPlaatsen"] = plaatsen;
            }
        }
    }

    protected void Wizard1_FinishButtonClick(object sender, WizardNavigationEventArgs e)
    {
        int teller;
        if (gekozenFilm.Dried.Equals("ja"))
        {
            teller = gekozenSoorten.Aantal.Length - 1; ;
        }
        else
        {
            teller = gekozenSoorten.Aantal.Length;
        }
        for (int i = 0; i < gekozenSoorten.totaalAantalPlaatsen(); )
        {
            for (int x = 0; x < teller; x++)
            {
                int aantalkaartjes = gekozenSoorten.Aantal[x];
                if (aantalkaartjes > 0)
                {
                    for (int xx = 0; xx < aantalkaartjes; xx++)
                    {
                        Document doc = new Document(iTextSharp.text.PageSize.LETTER, 10, 10, 42, 35);

                        PdfWriter wri = PdfWriter.GetInstance(doc, new FileStream("C:\\Temp\\Ticket" + i + ".pdf", FileMode.Create));
                        doc.Open();//Open Document to write

                        Paragraph header = new Paragraph("-----------------------------------------------------------------------");
                        Paragraph filmphrase = new Paragraph("Film: " + GekozenFilmLabel.Text + " om " + tijdFilm.Tijd);
                        Paragraph zaal = new Paragraph("Zaal: " + tijdFilm.Zaal + "    Stoel: " + plaatsen[i]);
                        Paragraph soort = new Paragraph("Soort kaartje: " + gekozenSoorten.Soort[x] + "  €" + gekozenSoorten.Prijs[x]);
                        Paragraph betaalkeuze = new Paragraph("Betaald met: " + Session["betaalKeuze"] + "");
                        doc.Add(header);
                        doc.Add(filmphrase);
                        doc.Add(zaal);
                        doc.Add(soort);
                        doc.Add(betaalkeuze);
                        doc.Add(header);

                        doc.Close(); //Close document
                        i++;
                    }
                }

            }

        }
        db.updatePlaatsen(plaatsen, tijdFilm.Zaal, tijdFilm.ID);
        Response.Redirect("~/Default.aspx");
    }
    private void StoelKlik(object sender, CommandEventArgs e)
    {

        int stoelnr = Convert.ToInt32(e.CommandArgument);
        bool stoelcheck = false;
        if (plaatsen != null)
        {
            foreach (int plaats in plaatsen)
            {
                if (plaats != stoelnr)
                {
                    stoelcheck = db.stoelCheck(stoelnr, tijdFilm.Zaal, tijdFilm.ID);
                    break;
                }
            }
        }
        else
        {
            stoelcheck = db.stoelCheck(stoelnr, tijdFilm.Zaal, tijdFilm.ID);
        }

        bool algekozen = false;
        if (plaatsen != null)
        {
            foreach (int plaats in plaatsen)
            {

                if (plaats == stoelnr)
                {
                    algekozen = true;
                    db.tijdelijkeUpdateStoel("ondaan", stoelnr, tijdFilm.Zaal, tijdFilm.ID);
                    if (plaatsen.Count > 0)
                    {
                        plaatsen.Remove(plaats);
                    }
                    else
                    {
                        plaatsen = new ArrayList();
                    }
                    break;
                }
            }
        }
        if (stoelcheck == false)
        {
            if (plaatsen != null && algekozen == false)
            {
                if (plaatsen.Count < gekozenSoorten.totaalAantalPlaatsen())
                {
                    plaatsen.Add(stoelnr);
                    db.tijdelijkeUpdateStoel("zetvast", stoelnr, tijdFilm.Zaal, tijdFilm.ID);

                }

            }
            else if (plaatsen == null)
            {
                plaatsen = new ArrayList();
                plaatsen.Add(stoelnr);
                db.tijdelijkeUpdateStoel("zetvast", stoelnr, tijdFilm.Zaal, tijdFilm.ID);
            }



            Session["gekozenPlaatsen"] = plaatsen;

        }

        Zaal.Controls.Clear();
        MaakZaal();
        if (plaatsen != null)
        {
            if (plaatsen.Count < gekozenSoorten.totaalAantalPlaatsen())
            {
                Wizard1.StepNextButtonStyle.CssClass = "buttonHidden";

            }
            else
            {
                Wizard1.StepNextButtonStyle.CssClass = "buttonVisible";

            }
        }


    }



    protected void UpdateLabels()
    {
        RangNummerLabel.Text = gekozenSoorten.Rang;

        if (gekozenSoorten.Aantal[0].Equals(0) == true)
        {
            Soort1Label.Text = "";
        }
        else
        {
            Soort1Label.Text = gekozenSoorten.Aantal[0] + "x " + gekozenSoorten.Soort[0] + " €" + gekozenSoorten.Totalen[0];
        }

        if (gekozenSoorten.Aantal[1].Equals(0) == true)
        {
            Soort2Label.Text = "";
        }
        else
        {
            Soort2Label.Text = gekozenSoorten.Aantal[1] + "x " + gekozenSoorten.Soort[1] + " €" + gekozenSoorten.Totalen[1];
        }

        if (gekozenSoorten.Aantal[2].Equals(0) == true)
        {
            Soort3Label.Text = "";
        }
        else
        {
            Soort3Label.Text = gekozenSoorten.Aantal[2] + "x " + gekozenSoorten.Soort[2] + " €" + gekozenSoorten.Totalen[2];
        }

        if (gekozenSoorten.Aantal[3].Equals(0) == true)
        {
            Soort4Label.Text = "";
        }
        else
        {
            Soort4Label.Text = gekozenSoorten.Aantal[3] + "x " + gekozenSoorten.Soort[3] + " €" + gekozenSoorten.Totalen[3];
        }
        if (gekozenFilm.Dried.Equals("ja"))
        {
            if (gekozenSoorten.Aantal[4].Equals(0) == true)
            {
                DriedLabel.Text = "";
                TotaalLabel.Text = "Totaal: €" + (gekozenSoorten.Totalen[0] + gekozenSoorten.Totalen[1] + gekozenSoorten.Totalen[2] + gekozenSoorten.Totalen[3]);
            }
            else
            {
                DriedLabel.Text = gekozenSoorten.Aantal[4] + "x " + gekozenSoorten.Soort[4] + " €" + gekozenSoorten.Totalen[4];
                TotaalLabel.Text = "Totaal: €" + (gekozenSoorten.Totalen[0] + gekozenSoorten.Totalen[1] + gekozenSoorten.Totalen[2] + gekozenSoorten.Totalen[3] + gekozenSoorten.Totalen[4]);
            }
        }
        else
        {
            DriedLabel.Text = "";
            TotaalLabel.Text = "Totaal: €" + (gekozenSoorten.Totalen[0] + gekozenSoorten.Totalen[1] + gekozenSoorten.Totalen[2] + gekozenSoorten.Totalen[3]);
        }
    }

    protected void rbBetKeuze_SelectedIndexChanged(object sender, EventArgs e)
    {
        betaalkeuze = rbBetKeuze.SelectedItem.Text;
        Session["betaalKeuze"] = betaalkeuze;
        betKeuzeLb.Text = "Betaalkeuze: " + betaalkeuze;
        if (betaalkeuze != null)
        {
            Wizard1.FinishCompleteButtonText = "Printen";
            Wizard1.FinishCompleteButtonStyle.CssClass = "buttonVisible";
            Button btn2 = Wizard1.FindControl("FinishNavigationTemplateContainerID").FindControl("FinishButton") as Button;
            if (btn2 != null)
            {
                btn2.Attributes.Add("onclick", "alert(\"Uw kaartjes worden geprint.\");");
            }
        }
    }

    public void SideBarList_ItemDataBound(object sender, DataListItemEventArgs e)
    {
        WizardStep dataitem = (WizardStep)e.Item.DataItem;
        Button lnkBtn = (Button)e.Item.FindControl("SideBarButton");
        if ((dataitem != null))
        {
            lnkBtn.Enabled = (e.Item.ItemIndex <= Wizard1.ActiveStepIndex);
        }
    }

}
